A graphical user interface is a visual computer environment that represents programs, files, and options with graphical images, such as icons, menus, and dialog boxes, on a computer screen. A user can select and activate these options by pointing and clicking with a mouse (such as a mouse 104) or often, with a keyboard. A particular item (such as a scroll bar) works the same way for the user in all applications because the graphical user interface provides standard software routines to handle these elements and report the user's actions (such as a mouse click on a particular icon or at a particular location in text, or a key press).
Menus are often used with a graphical user interface. A menu is a list of options from which a user can make a selection in order to perform a desired action, such as choosing a command or applying a particular format to part of a document. A choice on a menu is called a menu item, and is selectable by either the keyboard or a mouse. In some instances, a menu item that is not available (or that is not appropriate) for a given situation is “grayed” (dimmed in comparison to valid menu choices). Many application programs, especially those that operate in a graphical user interface environment, use menus as a means of providing the user with an easily learned, easy-to-use alternative to memorizing program commands and their appropriate usage.
Many different types of menus exist. A drop-down menu is a menu that drops from a menu bar, such as a menu bar 108, when requested and remains open without further action until a user closes it or chooses a menu item. A pull-down menu is a menu that is pulled down from the menu bar and that remains available as long as the user holds it open. A pop-up menu is a menu that appears on-screen when a user makes a certain selection with the mouse. Pop-up menus can appear anywhere on the screen and generally disappear when the user selects a menu item in the pop-up menu.
A species of the pop-up menu is a context menu. Context menus like other menus, hold commands grouped by a common theme. The usual theme of a context menu is to give the user access to a set of common operations (that a programmer thinks are frequently used by users). Context menus provide, upon user input, the set of common operations that may occur for a given computer screen location and application state (and typically “pop up” in response to a right-click of a mouse).
Usability studies have suggested that novice users often have difficulty locating context menus, undermining the potential usefulness of context menus to help these users gain confidence and trust in operating a complex computing environment. Novice users are often afraid of clicking on user interface elements they do not fully understand. Furthermore, present context menus require users to right-click nowhere in particular on the computer screen to cause context menus to appear which feels incongruous to novice users.
Even if a user figures out how to bring forth a context menu, its contents (namely, the menu items) never change and do not necessary represent the user desires. Menu items of a context menu are determined by the location at which a pointer is positioned in a graphical user interface. For example, menu items associated with a context menu that is invoked from a desktop (which is an on-screen work area that uses icons and menus to simulate the top of a desk in a graphical user interface) are different from menu items associated with a context menu invoked from a word processing application. These menu items are static. The educated guesses of a programmer who constructed the context menus may be useful for many users but are not suitable for users who have developed their own preferences over time as they have become proficient in operating a complex computing environment. This problem is illustrated in further detail by a system 100 shown in FIG. 1A and an application 106 shown in FIG. 1B.
The system 100 includes a personal computer 102, which is a computer designed for use by one person at a time. Personal computers do not need to share the processing, disk, and printer resources of another computer. IBM PC-compatible computers and Apple Macintoshes are both examples of personal computers. If the personal computer 102 employs a graphical user interface, the mouse 104 coupled to the personal computer 102 can be used to navigate a pointer in applications running on such a graphical user interface.
One application example is an application 106, which is a program designed to assist in the performance of a specific computing task, such as word processing, accounting, or inventory management. See FIG. 1B. As is typical with most applications, the application 106 includes a menu bar 108, which is a rectangular bar displayed in the on-screen window of the application 106, often at the top, from which menus can be selected by a user. Names of available menus, such as a “FILE” menu 110, an “EDIT” menu 112, and a “HELP” menu 114, are displayed in the menu bar; choosing one with a keyboard or with the mouse 104 causes the list of options in that menu to be displayed.
The application 106 includes a work area 116 which has a rectangular shape. Various user interface elements may appear in the work area 116, such as a context menu 117. A number of menu items, such as a “CUT” menu item 118, a “COPY” menu item 120, a “PASTE” menu item 122, and a “FORMAT” menu item 124, appear when the user actuates the mouse 104 to right-click at a certain location indicated by a pointer 128. The pointer 128 appears as an on-screen symbol, such as an arrowhead leaning slightly leftward or rightward, that can be controlled by the mouse 104 or other input devices and is used as a means of indicating (and selecting) locations or choices on the computer screen, such as menu items 118–124 of the context menu 117.
Menu items 118–122 (cut, copy, and paste) are operations in a procedure in which the personal computer 102 acts as an electronic combination of scissors and glue for reorganizing a piece of content (such as a document) or for compiling the document from different sources. The CUT menu item 118 has an on-screen symbol resembling a pair of scissors which is located to the left of the text “CUT.” The CUT menu item 118 allows the user to remove part of the document, usually placing it temporarily in memory so that the cut portion can be inserted (pasted) elsewhere. The COPY menu item 120 has an on-screen symbol resembling a set of document copies which is located to the left of the text “COPY.” The COPY menu item 120 allows information to be duplicated and reproduced in another part of the document, in a different file or memory location, or in a different medium. The copy operation being invoked by the COPY menu item 120 can affect the data ranging from a single character to large segments of text and graphics images. Text and graphics, for example, can be copied to another part of the document, to the computer's memory (by means of a temporary storage facility such as a clipboard), or to a different file. In most cases, the copy operation leaves the original information in place. An on-screen symbol resembling a clipboard is located to the left of the text “PASTE” of the PASTE menu item 122. The paste menu item 122 allows the insertion of text or a graphic that has been cut or copied from one document in a different location in the same or a different document. There is no on-screen symbol associated with the FORMAT menu item 124. The FORMAT menu item 124 allows a change in the appearance of a selected piece of content, such as text, graphics, or even a cell in a spreadsheet.
It is difficult for a novice user to discover the context menu 117 (especially if the user has a mouse with only one button) and thereby conveniently access menu items 118–124 without completely exploring multiple menus, such as menus 110–114 of the application 106. Moreover, the menu items 118–124 are static and will not respond to the changing preferences of a user. Uniformity in context menus helps increase standardization of the personal computer 102 and enables all users to share similar computing experiences in regard to invoking and using context menus. Without a solution that refocuses on the personal computing experience by helping each user discover context menus that are sensitive to the user's own preferences, users may eventually no longer trust the system 100 to provide a desired, personal computing experience, causing demand for the system 100 to diminish from the marketplace. Thus, there is a need for a method and a system for providing enhanced context menus while avoiding or reducing the foregoing and other problems associated with existing context menus.